use crate::content::ContentStore;

pub trait TrainableEngine {
    type TrainConfig: Default + Sized;
    fn blank(config: &Self::TrainConfig) -> anyhow::Result<Self>
    where
        Self: Sized;
    fn train(&mut self, material: ContentStore) -> anyhow::Result<()>;
    fn save(&self, config: &Self::TrainConfig) -> anyhow::Result<()>;
}
